/*
 * @文件名: 计算方法，big依赖防止精度问题
 */
import Big from './big.min';

// 加法
export function numAdd(num1, num2) {
	if((!num1 && num1 !== 0) || (!num2 && num2 !== 0)) return '';
	num1 = Number(num1)
	num2 = Number(num2)
	return Number(Big(num1).plus(num2))
}

// 减法
export function numSub(num1, num2) {
	if((!num1 && num1 !== 0) || (!num2 && num2 !== 0)) return '';
	num1 = Number(num1)
	num2 = Number(num2)
	return Number(Big(num1).minus(num2))
}

// 乘法 Digit保留几位小数，四舍五入
export function numMulti(num1, num2, Digit) {
	if((!num1 && num1 !== 0) || (!num2 && num2 !== 0)) return '';
	num1 = Number(num1)
	num2 = Number(num2)
	let number = Number(Big(num1).times(num2))
	if (Digit || Digit === 0) {
		return Math.round(number * Number('1e' + Digit)) / Number('1e' + Digit)
	} else {
		return number
	}
}
// console.log('测试乘法->', numMulti(10015.48988832, Math.pow(10, 8)))
// 除法
export function numDiv(num1, num2, Digit) { // 注意除法num2为0的情况
	if((!num1 && num1 !== 0) || (!num2 && num2 !== 0)) return '';
	num1 = Number(num1)
	num2 = Number(num2)
	if (!num2) {
		return 0
	}
	let number = Number(Big(num1).div(num2))
	if (Digit || Digit === 0) {
		return Math.round(number * Number('1e' + Digit)) / Number('1e' + Digit)
	} else {
		return number
	}
}
